package com.nciae.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nciae.dto.CartDTO;
import com.nciae.exception.SellException;
import com.nciae.po.ProductInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author YangChen
 * @since 2021-10-14
 */
public interface IProductInfoService extends IService<ProductInfo> {

        List<ProductInfo> findAll();

        IPage<ProductInfo> findByPage(Integer current, Integer size);

        List<ProductInfo> findAllByProductStatus(Integer codeStatus);


        List<ProductInfo> insert(ProductInfo productInfo);

        List<ProductInfo> update(ProductInfo productInfo);

        // 查询一个商品
        ProductInfo findOne(String productId);
        // 查询所有商品
        List<ProductInfo> findUpAll();
        // 分页查询所有商品
        IPage<ProductInfo> findPages(IPage page);
        // 上架
        ProductInfo onSale(String productId) throws SellException;
        // 下架
        ProductInfo offSale(String productId) throws SellException;

        // 加库存
        void increaseStock(List<CartDTO> cartDTOList) throws SellException;
        // 减库存
        void decreaseStock(List<CartDTO> cartDTOList) throws SellException;

}
